package config

import (
	"fmt"
	"github.com/spf13/viper"
	"os"
)

var App *app

type app struct {
	Port int    `mapstructure:"port"`
	Name string `mapstructure:"version"`
	Mode string `mapstructure:"mode"`
}

func init() {
	if len(os.Args) < 2 {
		panic(fmt.Errorf("配置文件没有设置！"))
	}
	//设置配置文件位置
	viper.SetConfigFile(os.Args[1])
	//正式加载
	if err := viper.ReadInConfig(); err != nil {
		panic(fmt.Errorf("配置文件加载失败！, err:%s \n", err))
	}
	App = new(app)
	// 将读取的配置信息保存至全局变量Conf
	if err := viper.Sub("app").Unmarshal(App); err != nil {
		panic(fmt.Errorf("unmarshal app conf failed, err:%s \n", err))
	}
}
